/*
 * My97 DatePicker 4.8 Beta4
 * License: http://www.my97.net/dp/license.asp
 */
var $dp, WdatePicker;
(function() {
	var $ = {
		$langList: [
			{ name: "zh-cn", charset: "gb2312" },
			{ name: "en", charset: "UTF-8" },
			{ name: "zh-tw", charset: "GBK" }
		],
		$skinList: [
			{ name: "default", charset: "gb2312" },
			{ name: "whyGreen", charset: "gb2312" },
			{ name: "blue", charset: "gb2312" },
			{ name: "green", charset: "gb2312" },
			{ name: "simple", charset: "gb2312" },
			{ name: "ext", charset: "gb2312" },
			{ name: "blueFresh", charset: "gb2312" },
			{ name: "twoer", charset: "gb2312" },
			{ name: "YcloudRed", charset: "gb2312" }
		],
		$wdate: true,
		$crossFrame: true,
		$preLoad: false,
		$dpPath: "",
		doubleCalendar: false,
		enableKeyboard: true,
		enableInputMask: true,
		autoUpdateOnChanged: null,
		weekMethod: "ISO8601",
		position: {},
		lang: "auto",
		skin: "default",
		dateFmt: "yyyy-MM-dd",
		realDateFmt: "yyyy-MM-dd",
		realTimeFmt: "HH:mm:ss",
		realFullFmt: "%Date %Time",
		minDate: "1900-01-01 00:00:00",
		maxDate: "2099-12-31 23:59:59",
		startDate: "",
		alwaysUseStartDate: false,
		yearOffset: 1911,
		firstDayOfWeek: 1, //周的第一天 0表示星期日 1表示星期一
		isShowWeek: false,
		highLineWeekDay: true,
		isShowClear: true,
		isShowToday: true,
		isShowOK: true,
		isShowOthers: true,
		readOnly: false,
		errDealMode: 0,
		autoPickDate: null,
		qsEnabled: true,
		autoShowQS: false,
		opposite: false,
		hmsMenuCfg: { H: [1, 6], m: [5, 6], s: [15, 4] },
		opposite: false,

		specialDates: null,
		specialDays: null,
		disabledDates: null,
		disabledDays: null,
		onpicking: null,
		onpicked: null,
		onclearing: null,
		oncleared: null,
		ychanging: null,
		ychanged: null,
		Mchanging: null,
		Mchanged: null,
		dchanging: null,
		dchanged: null,
		Hchanging: null,
		Hchanged: null,
		mchanging: null,
		mchanged: null,
		schanging: null,
		schanged: null,
		eCont: null,
		vel: null,
		elProp: "",
		errMsg: "",
		quickSel: [],
		has: {},
		getRealLang: function() { var _ = $.$langList; for(var A = 0; A < _.length; A++)
				if(_[A].name == this.lang) return _[A]; return _[0] }
	};
	WdatePicker = U;
	var Y = window,
		T = { innerHTML: "" },
		N = "document",
		H = "documentElement",
		C = "getElementsByTagName",
		V, A, S, G, c, X = navigator.appName;
	if(X == "Microsoft Internet Explorer") S = true;
	else if(X == "Opera") c = true;
	else G = true;
	A = $.$dpPath || J();
	if($.$wdate) K(A + "skin/WdatePicker.css");
	V = Y;
	if($.$crossFrame) { try { while(V.parent != V && V.parent[N][C]("frameset").length == 0) V = V.parent } catch(O) {} }
	if(!V.$dp) V.$dp = { ff: G, ie: S, opera: c, status: 0, defMinDate: $.minDate, defMaxDate: $.maxDate };
	B();
	if($.$preLoad && $dp.status == 0) E(Y, "onload", function() { U(null, true) });
	if(!Y[N].docMD) { E(Y[N], "onmousedown", D, true);
		Y[N].docMD = true }
	if(!V[N].docMD) { E(V[N], "onmousedown", D, true);
		V[N].docMD = true } E(Y, "onunload", function() { if($dp.dd) P($dp.dd, "none") });

	function B() { try { V[N], V.$dp = V.$dp || {} } catch($) { V = Y;
			$dp = $dp || {} } var A = { win: Y, $: function($) { return(typeof $ == "string") ? Y[N].getElementById($) : $ }, $D: function($, _) { return this.$DV(this.$($).value, _) }, $DV: function(_, $) { if(_ != "") { this.dt = $dp.cal.splitDate(_, $dp.cal.dateFmt); if($)
						for(var B in $)
							if(this.dt[B] === undefined) this.errMsg = "invalid property:" + B;
							else { this.dt[B] += $[B]; if(B == "M") { var C = $["M"] > 0 ? 1 : 0,
										A = new Date(this.dt["y"], this.dt["M"], 0).getDate();
									this.dt["d"] = Math.min(A + C, this.dt["d"]) } }
					if(this.dt.refresh()) return this.dt } return "" }, show: function() { var A = V[N].getElementsByTagName("div"),
					$ = 100000; for(var B = 0; B < A.length; B++) { var _ = parseInt(A[B].style.zIndex); if(_ > $) $ = _ } this.dd.style.zIndex = $ + 2;
				P(this.dd, "block");
				P(this.dd.firstChild, "") }, unbind: function($) { $ = this.$($); if($.initcfg) { L($, "onclick", function() { U($.initcfg) });
					L($, "onfocus", function() { U($.initcfg) }) } }, hide: function() { P(this.dd, "none") }, attachEvent: E }; for(var _ in A) V.$dp[_] = A[_];
		$dp = V.$dp }

	function E(B, _, A, $) { if(B.addEventListener) { var C = _.replace(/on/, "");
			A._ieEmuEventHandler = function($) { return A($) };
			B.addEventListener(C, A._ieEmuEventHandler, $) } else B.attachEvent(_, A) }

	function L(A, $, _) { if(A.removeEventListener) { var B = $.replace(/on/, "");
			_._ieEmuEventHandler = function($) { return _($) };
			A.removeEventListener(B, _._ieEmuEventHandler, false) } else A.detachEvent($, _) }

	function a(_, $, A) { if(typeof _ != typeof $) return false; if(typeof _ == "object") { if(!A)
				for(var B in _) { if(typeof $[B] == "undefined") return false; if(!a(_[B], $[B], true)) return false }
			return true } else if(typeof _ == "function" && typeof $ == "function") return _.toString() == $.toString();
		else return _ == $ }

	function J() { var _, A, $ = Y[N][C]("script"); for(var B = 0; B < $.length; B++) { _ = $[B].getAttribute("src") || "";
			_ = _.substr(0, _.toLowerCase().indexOf("wdatepicker.js"));
			A = _.lastIndexOf("/"); if(A > 0) _ = _.substring(0, A + 1); if(_) break } return _ }

	function K(A, $, B) { var D = Y[N][C]("HEAD").item(0),
			_ = Y[N].createElement("link"); if(D) { _.href = A;
			_.rel = "stylesheet";
			_.type = "text/css"; if($) _.title = $; if(B) _.charset = B;
			D.appendChild(_) } }

	function F($) { $ = $ || V; var A = 0,
			_ = 0; while($ != V) { var D = $.parent[N][C]("iframe"); for(var F = 0; F < D.length; F++) { try { if(D[F].contentWindow == $) { var E = W(D[F]);
						A += E.left;
						_ += E.top; break } } catch(B) {} } $ = $.parent } return { "leftM": A, "topM": _ } }

	function W(G, F) { if(G.getBoundingClientRect) return G.getBoundingClientRect();
		else { var A = { ROOT_TAG: /^body|html$/i, OP_SCROLL: /^(?:inline|table-row)$/i },
				E = false,
				I = null,
				_ = G.offsetTop,
				H = G.offsetLeft,
				D = G.offsetWidth,
				B = G.offsetHeight,
				C = G.offsetParent; if(C != G)
				while(C) { H += C.offsetLeft;
					_ += C.offsetTop; if(R(C, "position").toLowerCase() == "fixed") E = true;
					else if(C.tagName.toLowerCase() == "body") I = C.ownerDocument.defaultView;
					C = C.offsetParent } C = G.parentNode; while(C.tagName && !A.ROOT_TAG.test(C.tagName)) { if(C.scrollTop || C.scrollLeft)
					if(!A.OP_SCROLL.test(P(C)))
						if(!c || C.style.overflow !== "visible") { H -= C.scrollLeft;
							_ -= C.scrollTop }
				C = C.parentNode } if(!E) { var $ = b(I);
				H -= $.left;
				_ -= $.top } D += H;
			B += _; return { "left": H, "top": _, "right": D, "bottom": B } } }

	function M($) { $ = $ || V; var B = $[N],
			A = ($.innerWidth) ? $.innerWidth : (B[H] && B[H].clientWidth) ? B[H].clientWidth : B.body.offsetWidth,
			_ = ($.innerHeight) ? $.innerHeight : (B[H] && B[H].clientHeight) ? B[H].clientHeight : B.body.offsetHeight; return { "width": A, "height": _ } }

	function b($) { $ = $ || V; var B = $[N],
			A = B[H],
			_ = B.body;
		B = (A && A.scrollTop != null && (A.scrollTop > _.scrollTop || A.scrollLeft > _.scrollLeft)) ? A : _; return { "top": B.scrollTop, "left": B.scrollLeft } }

	function D($) { try { var _ = $ ? ($.srcElement || $.target) : null; if($dp.cal && !$dp.eCont && $dp.dd && _ != $dp.el && $dp.dd.style.display == "block") $dp.cal.close() } catch($) {} }

	function Z() { $dp.status = 2 }
	var Q, _;

	function U(K, C) { if(!$dp) return;
		B(); var L = {}; for(var H in K) L[H] = K[H]; for(H in $)
			if(H.substring(0, 1) != "$" && L[H] === undefined) L[H] = $[H]; if(C) { if(!J()) { _ = _ || setInterval(function() { if(V[N].readyState == "complete") clearInterval(_);
					U(null, true) }, 50); return } if($dp.status == 0) { $dp.status = 1;
				L.el = T;
				I(L, true) } else return } else if(L.eCont) { L.eCont = $dp.$(L.eCont);
			L.el = T;
			L.autoPickDate = true;
			L.qsEnabled = false;
			I(L) } else { if($.$preLoad && $dp.status != 2) return; var F = D(); if(Y.event === F || F) { L.srcEl = F.srcElement || F.target;
				F.cancelBubble = true } L.el = L.el = $dp.$(L.el || L.srcEl); if(!L.el || L.el["My97Mark"] === true || L.el.disabled || ($dp.dd && P($dp.dd) != "none" && $dp.dd.style.left != "-970px")) { try { if(L.el["My97Mark"]) L.el["My97Mark"] = false } catch(A) {} return } if(F && L.el.nodeType == 1 && !a(L.el.initcfg, K)) { $dp.unbind(L.el);
				E(L.el, F.type == "focus" ? "onclick" : "onfocus", function() { U(K) });
				L.el.initcfg = K } I(L) }

		function J() { if(S && V != Y && V[N].readyState != "complete") return false; return true }

		function D() { if(G) { func = D.caller; while(func != null) { var $ = func.arguments[0]; if($ && ($ + "").indexOf("Event") >= 0) return $;
					func = func.caller } return null } return event } }

	function R(_, $) { return _.currentStyle ? _.currentStyle[$] : document.defaultView.getComputedStyle(_, false)[$] }

	function P(_, $) { if(_)
			if($ != null) _.style.display = $;
			else return R(_, "display") }

	function I(G, _) { var D = G.el ? G.el.nodeName : "INPUT"; if(_ || G.eCont || new RegExp(/input|textarea|div|span|p|a/ig).test(D)) G.elProp = D == "INPUT" ? "value" : "innerHTML";
		else return; if(G.lang == "auto") G.lang = S ? navigator.browserLanguage.toLowerCase() : navigator.language.toLowerCase(); if(!G.eCont)
			for(var C in G) $dp[C] = G[C]; if(!$dp.dd || G.eCont || ($dp.dd && (G.getRealLang().name != $dp.dd.lang || G.skin != $dp.dd.skin))) { if(G.eCont) E(G.eCont, G);
			else { $dp.dd = V[N].createElement("DIV");
				$dp.dd.style.cssText = "position:absolute";
				V[N].body.appendChild($dp.dd);
				E($dp.dd, G); if(_) $dp.dd.style.left = $dp.dd.style.top = "-970px";
				else { $dp.show();
					B($dp) } } } else if($dp.cal) { $dp.show();
			$dp.cal.init(); if(!$dp.eCont) B($dp) }

		function E(K, J) { var I = V[N].domain,
				F = false,
				G = "<iframe hideFocus=true width=9 height=7 frameborder=0 border=0 scrolling=no src=\"about:blank\"></iframe>";
			K.innerHTML = G; var _ = $.$langList,
				D = $.$skinList,
				H; try { H = K.lastChild.contentWindow[N] } catch(E) { F = true;
				K.removeChild(K.lastChild); var L = V[N].createElement("iframe");
				L.hideFocus = true;
				L.frameBorder = 0;
				L.scrolling = "no";
				L.src = "javascript:(function(){var d=document;d.open();d.domain='" + I + "';})()";
				K.appendChild(L);
				setTimeout(function() { H = K.lastChild.contentWindow[N];
					C() }, 97); return } C();

			function C() { var _ = J.getRealLang();
				K.lang = _.name;
				K.skin = J.skin;
				var $ = ["<head><script>", "", "var doc=document, $d, $dp, $cfg=doc.cfg, $pdp = parent.$dp, $dt, $tdt, $sdt, $lastInput, $IE=$pdp.ie, $FF = $pdp.ff,$OPERA=$pdp.opera, $ny, $cMark = false;", "if($cfg.eCont){$dp = {};for(var p in $pdp)$dp[p]=$pdp[p];}else{$dp=$pdp;};for(var p in $cfg){$dp[p]=$cfg[p];}", "doc.oncontextmenu=function(){try{$c._fillQS(!$dp.has.d,1);showB($d.qsDivSel);}catch(e){};return false;};", "</script><script src=", A, "lang/", _.name, ".js charset=", _.charset, "></script>"]; if(F) $[1] = "document.domain=\"" + I + "\";"; for(var C = 0; C < D.length; C++)
					if(D[C].name == J.skin) $.push("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + A + "skin/" + D[C].name + "/datepicker.css\" charset=\"" + D[C].charset + "\"/>");
				$.push("<script src=\"" + A + "calendar.js\"></script>");
				$.push("</head><body leftmargin=\"0\" topmargin=\"0\" tabindex=0></body></html>");
				$.push("<script>var t;t=t||setInterval(function(){if(doc.ready){new My97DP();$cfg.onload();$c.autoSize();$cfg.setPos($dp);clearInterval(t);}},20);</script>");
				J.setPos = B;
				J.onload = Z;
				H.write("<html>");
				H.cfg = J;
				H.write($.join(""));
				H.close() } }

		function B(J) { var H = J.position.left,
				C = J.position.top,
				D = J.el; if(D == T) return; if(D != J.srcEl && (P(D) == "none" || D.type == "hidden")) D = J.srcEl; var I = W(D),
				$ = F(Y),
				E = M(V),
				B = b(V),
				G = $dp.dd.offsetHeight,
				A = $dp.dd.offsetWidth; if(isNaN(C)) C = 0; if(($.topM + I.bottom + G > E.height) && ($.topM + I.top - G > 0)) C += B.top + $.topM + I.top - G - 2;
			else { C += B.top + $.topM + I.bottom; var _ = C - B.top + G - E.height; if(_ > 0) C -= _ } if(isNaN(H)) H = 0;
			H += B.left + Math.min($.leftM + I.left, E.width - A - 5) - (S ? 2 : 0);
			J.dd.style.top = C + "px";
			J.dd.style.left = H + "px" } }
})()
$('body').delegate('.triggerChooseDate', 'click', function() {
	WdatePicker();
})
$('body').delegate('.triggerChooseDateYear', 'click', function() {
	WdatePicker({ dateFmt: 'yyyy' });
})
$('body').delegate('.triggerChooseDateMonthDay', 'click', function() {
	WdatePicker({ dateFmt: 'MM-dd' });
})
$('body').delegate('.triggerChooseDateTime', 'click', function() {
	WdatePicker({ dateFmt: 'yyyy-MM-dd HH:mm' });
});
$('body').delegate('.triggerChooseTime', 'click', function() {
	WdatePicker({ dateFmt: 'HH:mm' });
});
$('body').delegate('.triggerChooseDateMonth', 'click', function() {
	WdatePicker({ dateFmt: 'yyyy年MM月' });
});
$('body').delegate('.triggerChooseDateDay', 'click', function() {
	WdatePicker({ dateFmt: 'yyyy年MM月dd日' });
});
$('body').delegate('.triggerChooseDateWeek', 'click', function() {
	WdatePicker({ isShowWeek: true, dateFmt: 'yyyy年MM月dd日第W周' });
});